1. Field of the Invention
This invention relates to maintaining synchronization of data files, and particularly to maintaining synchronization of XML schema definitions (XSD) files referenced by Web Service Definition Language (WSDL) files.
2. Description of Background
A messaging utility, such as Message Broker Toolkit (MBT), is a development environment utilizing Web Service Definition Language (WSDL) files, which are supplied by end users, to define specific attributes of a message set. A message set is a fundamental organizational and functional component of MBT.
A WSDL definition supplied by the user is incorporated into a message set when an end user performs an import operation using MBT. This import operation transforms certain components of the WSDL definition into a format that facilitates the use of the WSDL within MBT.
A WSDL definition defines data structures using XML. These data structures may be defined as XML Schema Definitions (XSD), which can either be placed directly within the WSDL definition or imported from an external file (i.e., a separate XSD definition). One of the transformations performed by the MBT import operation is to transform these XSD files, regardless of their format within the WSDL definition, into message definitions (MXSD). These message definitions are then stored external to the WSDL definition; that is, the WSDL definition either has an XSD import (if the namespace between the message definition and the WSDL definition is different) or an XSD include (if the namespaces are the same) that references the created MXSD. This reference is passive and defined by specifying the physical file path from the WSDL definition to the MXSD (thus the MXSD has no knowledge of which WSDL definitions reference it). As the reference is passive, there is no mechanism that ensures that the reference is valid.
In order for the WSDL definition to be complete and usable within MBT, the MXSD files referenced by the WSDL definition must exist. However, as the message definitions are resources within MBT analogous to files, they can be renamed, moved or deleted. When the user performs one of those actions on a MXSD file, it is probable that the reference to that MXSD file within a WSDL definition will no longer be valid. Similarly, the MXSD file can be edited by the user into an invalid state. The effect of these actions is that the WSDL definition will be in an erroneous state and cannot be utilized by MBT. However, the end user will not be automatically made aware of this effect because the reference is passive.
This is a significant problem because if the WSDL definitions imported by the user are made invalid through a seemingly innocuous and unrelated change, when the user attempts to use the WSDL definition, they will experience unexpected and erroneous behavior. This has several repercussions. The user may lose confidence in themselves and challenge their assumptions and knowledge of the MBT. The user may lose confidence in the stability, functionality and behavior of MBT. The user will need to spend time to determine the root cause of the erroneous behavior and resolve it. This problem exhibits a direct cost on the end user, and a future cost on the makers of the product and the user.